<template>
	<!--列表-->
	<div class="list-container">
		<div class="sortList clearfix">
			<div class="center">
				<!--banner轮播-->
				<Carsousel :list="bannerList"></Carsousel>
			</div>
			<div class="right">
				<div class="news">
					<h4>
						<em class="fl">尚品汇快报</em>
						<span class="fr tip">更多 ></span>
					</h4>
					<div class="clearix"></div>
					<ul class="news-list unstyled">
						<li><span class="bold">[特惠]</span>备战开学季 全民半价购数码</li>
						<li><span class="bold">[公告]</span>备战开学季 全民半价购数码</li>
						<li><span class="bold">[特惠]</span>备战开学季 全民半价购数码</li>
						<li><span class="bold">[公告]</span>备战开学季 全民半价购数码</li>
						<li><span class="bold">[特惠]</span>备战开学季 全民半价购数码</li>
					</ul>
				</div>
				<ul class="lifeservices">
					<li class="life-item">
						<i class="list-item"></i>
						<span class="service-intro">话费</span>
					</li>
					<li class="life-item">
						<i class="list-item"></i>
						<span class="service-intro">机票</span>
					</li>
					<li class="life-item">
						<i class="list-item"></i>
						<span class="service-intro">电影票</span>
					</li>
					<li class="life-item">
						<i class="list-item"></i>
						<span class="service-intro">游戏</span>
					</li>
					<li class="life-item">
						<i class="list-item"></i>
						<span class="service-intro">彩票</span>
					</li>
					<li class="life-item">
						<i class="list-item"></i>
						<span class="service-intro">加油站</span>
					</li>
					<li class="life-item">
						<i class="list-item"></i>
						<span class="service-intro">酒店</span>
					</li>
					<li class="life-item">
						<i class="list-item"></i>
						<span class="service-intro">火车票</span>
					</li>
					<li class="life-item">
						<i class="list-item"></i>
						<span class="service-intro">众筹</span>
					</li>
					<li class="life-item">
						<i class="list-item"></i>
						<span class="service-intro">理财</span>
					</li>
					<li class="life-item">
						<i class="list-item"></i>
						<span class="service-intro">礼品卡</span>
					</li>
					<li class="life-item">
						<i class="list-item"></i>
						<span class="service-intro">白条</span>
					</li>
				</ul>
				<div class="ads">
					<img src="./images/ad1.png" />
				</div>
			</div>
		</div>
	</div>
</template>

<script>
import { mapState } from 'vuex';
// 引入 swiper 依赖包
// import Swiper from 'swiper';

export default {
	mounted() {
		// mounted: 组件挂载完毕, 正常说组件结构(DOM)已经全有了
		// 为什么swiper实例在mounted当中直接书写不可以: 因为结构还没有完整

		// 派发achtion: 通知 Vuex 发起 ajax 请求, 将数据存储在仓库当中
		this.$store.dispatch('getBannerList');
		// 因为 dispath 当中涉及异步语句, 导致 v-for 遍历的时候结构还没有完全, 因此不行
	},
	computed: {
		...mapState({
			bannerList: (state) => state.home.bannerList,
		}),
	},
	// watch: {
	// 	// 监听bannerList数据的变化: 因为这条数据发生过变化 ---> 由空数组变为数组里面有四个元素
	// 	bannerList: {
	// 		immediate: true,
	// 		handler(newValue, oldValue) {
	// 			// watch 监听 bannnerList 书写的属性值的变化
	// 			// 如果执行 handler 方法, 代表组件实例身上这个属性的属性值已经有了数组*4
	// 			// 当前这个函数执行 : 只能保证 bannerList 数据已经有了,但是没办法保证 v-for 已经执行结束
	// 			// v-for 执行完毕, 才有结构, 现在在 watch 当中没办法保证循环结束的
	// 			this.$nextTick(() => {
	// 				// 当执行这个回调的时候, 已经保证服务器的数据接收到了, 且循环也结束了
	// 				// 轮播图动画效果
	// 				let mySwiper = new Swiper(this.$refs.mySwiper, {
	// 					effect: 'cube',
	// 					autoplay: true,
	// 					loop: true,
	// 					// 如果需要分页器
	// 					pagination: {
	// 						el: '.swiper-pagination',
	// 						clickable: true,
	// 					},
	// 					// 如果需要前进后退按钮
	// 					navigation: {
	// 						nextEl: '.swiper-button-next',
	// 						prevEl: '.swiper-button-prev',
	// 					},
	// 				});
	// 			});
	// 		},
	// 	},
	// },
};
</script>

<style lang="scss" scoped>
.list-container {
	width: 1200px;
	margin: 0 auto;

	.sortList {
		height: 464px;
		padding-left: 210px;

		.center {
			box-sizing: border-box;
			width: 740px;
			height: 100%;
			padding: 5px;
			float: left;
		}

		.right {
			float: left;
			width: 250px;

			.news {
				border: 1px solid #e4e4e4;
				margin-top: 5px;

				h4 {
					border-bottom: 1px solid #e4e4e4;
					padding: 5px 10px;
					margin: 5px 5px 0;
					line-height: 22px;
					overflow: hidden;
					font-size: 14px;

					.fl {
						float: left;
					}

					.fr {
						float: right;
						font-size: 12px;
						font-weight: 400;
					}
				}

				.news-list {
					padding: 5px 15px;
					line-height: 26px;

					.bold {
						font-weight: 700;
					}
				}
			}

			.lifeservices {
				border-right: 1px solid #e4e4e4;
				overflow: hidden;
				display: flex;
				flex-wrap: wrap;

				.life-item {
					border-left: 1px solid #e4e4e4;
					border-bottom: 1px solid #e4e4e4;
					margin-right: -1px;
					height: 64px;
					text-align: center;
					position: relative;
					cursor: pointer;
					width: 25%;

					.list-item {
						background-image: url(~@/assets/images/icons.png);
						width: 61px;
						height: 40px;
						display: block;
					}

					.service-intro {
						line-height: 22px;
						width: 60px;
						display: block;
					}

					&:nth-child(1) {
						.list-item {
							background-position: 0px -5px;
						}
					}

					&:nth-child(2) {
						.list-item {
							background-position: -62px -5px;
						}
					}

					&:nth-child(3) {
						.list-item {
							background-position: -126px -5px;
						}
					}

					&:nth-child(4) {
						.list-item {
							background-position: -190px -5px;
						}
					}

					&:nth-child(5) {
						.list-item {
							background-position: 0px -76px;
						}
					}

					&:nth-child(6) {
						.list-item {
							background-position: -62px -76px;
						}
					}

					&:nth-child(7) {
						.list-item {
							background-position: -126px -76px;
						}
					}

					&:nth-child(8) {
						.list-item {
							background-position: -190px -76px;
						}
					}

					&:nth-child(9) {
						.list-item {
							background-position: 0px -146px;
						}
					}

					&:nth-child(10) {
						.list-item {
							background-position: -62px -146px;
						}
					}

					&:nth-child(11) {
						.list-item {
							background-position: -126px -146px;
						}
					}

					&:nth-child(12) {
						.list-item {
							background-position: -190px -146px;
						}
					}
				}
			}

			.ads {
				margin-top: 5px;

				img {
					opacity: 0.8;
					transition: all 400ms;

					&:hover {
						opacity: 1;
					}
				}
			}
		}
	}
}
</style>
